1. Field of Invention This invention relates to the method of machines that produce an action in response to sensed conditions in discontinuous steps according to instructions stored in memories, specifically to a machine that establishes its own instructions according to the most likely action state previously encountered by the machine in each step for each sensed condition in each step.
2. Discussion of Prior Art
Most controlled machines are programmed to operate in a specific way before they are put into use. This programming process requires a detailed set of instructions to produce some desired result. This can be accomplished readily for simple control tasks such as cutting parts with a numerically controlled milling machine according to the specific dimensions of the part drawing. However, it may be difficult to know beforehand what conditions will be encountered, and what actions will be required in an application like a surveillance robot. The problem can be overcome by putting the machine into operation, and then using the machine to discover and incorporate the desired control behavior.
In general practice, there are two ways to incorporate the desired control behavior after a machine is put into use. One is based upon absolute (all-or-nothing) associative memories, as shown in U.S. Pat. No. 4,538,243 to Bernd Zehner (1985), and the other is based upon neural networks, as shown in U.S. Pat. No. 5,161,203 to B. Shawn Buckley (1992).
An absolute associative memory writes the input word (sensed condition) into the address of the output word (desired action). In use, the associative memory system searches for the output word (address) that contains the exact match of the input word either through the Boolean "and" function, or a mismatch through the Boolean "or" function. Thus it is called an associative content addressable memory (ACAM), and is considered self-learning since it learns the output word that occurs with each input word.
A neural network operates in much the same way as an associative memory. However, a neural network operates by altering weights common to specific input words and desired output words. In use, a neural network finds the output word in which the sum of the weights belonging to the extant input word is a maximum. This output word is considered the best fit to the input word. Since the best fit is conditional, according to the fitness of the other possible output words, a neural network can be considered to have a conditional memory. Nevertheless, associative memories and neural networks suffer from several disadvantages:
(a) If an associative memory cannot find an output word that exactly matches the input word, additional less restrictive searches must be made by the associative memory system to find the output word that is associated with the input word. In most robot applications, some action state (output word) is required for every sensed state (input word). A robot machine controlled by an associative memory may not have enough time to make multiple searches to find an action state of each sensed state. Since the best fit output word is always found in every search in a conditional memory, a neural network is a more appropriate controller for a robot type machine.
(b) Memory-controlled machines must also deal with the question: Do specific input and output variables belong together as a group, or do they belong in separate groups? An associative memory cannot inherently make these distinctions. However, neural networks have the capability of being inherently self-organizing. That is to say, they can identify input and output variables that operate best when grouped together, and can identify the input and output variables that operate best when they are separate from other input and output variables.
(c) Associative memories and neural networks are designed around the binary (two-value) number system, which is less efficient than the trinary (three-value) number system.
(d) When memory units can be arranged in interconnected networks, information can flow forward from input variables to output variables, and backward from output variables to input variables in many different pathways. However, absolute associative memories cannot be connected to one another directly in networks because their absolute memory cells leave no traces of previously erased pathways. However, neural network units can be connected directly into networks because output data can be associated with input data through conditional traces in one or more intermediate layers of neural network units.
(e) However, the analog circuitry required to accurately sum currents in a neural network is difficult to implement in the large scale integration of printed circuits (LSI) in comparison to the discrete operations of an associative memory. Usually, digital computers are used to simulate the operation of neural networks. However, the serial process of the digital computer imposes speed limitations on the inherently parallel process of neural networks.